package LeetCode刷题;

/**
 * @program: Java_Study
 * @author: Xiaofan
 * @createTime: 2022-01-06 09:10
 * @description: Functions of this class is
 * 官方题解：使用优先队列 <使用大小堆进行维护>：
 *class MedianFinder {
 *     PriorityQueue<Integer> queMin;
 *     PriorityQueue<Integer> queMax;
 *     public MedianFinder() {
 *         queMin=new PriorityQueue<Integer>((q1,q2)->(q1-q2));//维护一个小顶堆（相当于尖子班），升序排序
 *         queMax=new PriorityQueue<Integer>((q1,q2)->(q2-q1));//维护一个大顶堆（相当于普通班），降序排序
 *     }
 *
 *      原则即小顶堆中最小的元素都要大于大顶堆中的最大元素，即堆顶
 *     public void addNum(int num) {
 *         //所做的一切都是为了维护一个中位数，要是进入小顶堆的元素都比大顶堆中的小
 *         queMax.add(num);//学生进来先进入普通班
 *         queMin.add(queMax.poll());//然后让普通班成绩最高的进入尖子班
 *         if(queMin.size()>queMax.size()+1){
 *             //如果尖子班太多人了，就让其成绩最低的一个进入普通班
 *             queMax.add(queMin.poll());
 *         }
 *     }
 *
 *     public double findMedian() {
 *         return queMin.size()!=queMax.size()?queMin.peek():(queMin.peek()+queMax.peek())/2.0;
 *     }
 * }
 **/
public class NoNo数据流的中位数 {
    public static void main(String[] args) {

    }
}